using Microsoft.AspNetCore.Mvc;

namespace SmartMedicalRAG.Api.Controllers;

/// <summary>
/// 主页控制器 - 提供 API 基础信息和状态查询
/// 作用：作为 API 的入口点，提供系统概览和健康状态检查
/// </summary>
[ApiController]
[Route("[controller]")]
public class HomeController : ControllerBase
{
    /// <summary>
    /// 获取主页信息 - API 系统概览
    /// 作用：返回智慧医疗 RAG 系统的基本信息，包括应用名称、版本、描述和可用端点
    /// 访问路径：GET /Home
    /// 返回：系统基本信息，包括应用名称、版本、描述和各个端点的访问路径
    /// 使用场景：系统信息展示、API 文档、运维监控
    /// </summary>
    /// <returns>API 系统信息</returns>
    /// <response code="200">成功返回系统信息</response>
    [HttpGet]
    [ProducesResponseType(200)]
    public ActionResult<object> Get()
    {
        return Ok(new
        {
            Application = "智慧医疗 RAG 系统",
            Version = "1.0.0",
            Description = "基于检索增强生成的智能医疗分诊系统",
            Endpoints = new
            {
                Swagger = "/swagger",
                Health = "/api/triage/health",
                Analyze = "/api/triage/analyze"
            },
            Timestamp = DateTime.UtcNow
        });
    }

    /// <summary>
    /// 获取 API 运行状态 - 系统状态监控
    /// 作用：检查 API 是否正常运行，返回当前运行状态和环境信息
    /// 访问路径：GET /Home/status
    /// 返回：运行状态、环境类型和时间戳
    /// 用途：用于系统监控、健康检查和负载均衡器的心跳检测
    /// 使用场景：系统监控、健康检查、负载均衡器配置
    /// </summary>
    /// <returns>API 运行状态信息</returns>
    /// <response code="200">系统正常运行</response>
    /// <response code="503">系统服务不可用</response>
    [HttpGet("status")]
    [ProducesResponseType(200)]
    [ProducesResponseType(503)]
    public ActionResult<object> GetStatus()
    {
        return Ok(new
        {
            Status = "Running",
            Environment = "Development",
            Timestamp = DateTime.UtcNow
        });
    }
} 